home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 2 / Geek_Gadgets_2_2352.bin / lists / ade-gcc.archive.9602.gz / ade-gcc.archive.9602 / 000090_owner-ade-gcc_Mon Feb 19 06:21:58 1996.msg < prev    next >
Internet Message Format  |  1996-02-28  |  3KB

  1. Return-Path: <owner-ade-gcc>
  2. Received: by fishpond (Smail3.1.29.1 #57)
  3.     id m0toTcc-000gXXa; Mon, 19 Feb 96 06:19 EST
  4. Sender: owner-ade-gcc
  5. Received: from ernie.icslab.agh.edu.pl by fishpond with smtp
  6.     (Smail3.1.29.1 #57) id m0toTcM-000gXUC; Mon, 19 Feb 96 06:18 EST
  7. Received: (from kiskra@localhost) by ernie.icslab.agh.edu.pl (8.6.12/8.6.12) id MAA05421; Mon, 19 Feb 1996 12:16:34 +0100
  8. Date: Mon, 19 Feb 1996 12:16:34 +0100 (MET)
  9. From: Kamil Iskra <kiskra@ernie.icslab.agh.edu.pl>
  10. To: Matthias Fleischer <fleischr@IZFM.Uni-Stuttgart.DE>
  11. cc: amiga-gcc-port@nic.funet.fi, ADE GCC List <ade-gcc@ninemoons.com>
  12. Subject: Re: Passing arguments in registers and stack checking/extension
  13. In-Reply-To: <9602161050.AA10759@sunserv.IZFM.Uni-Stuttgart.DE>
  14. Message-ID: <Pine.SUN.3.91.960219120359.4888B-100000@ernie>
  15. MIME-Version: 1.0
  16. Content-Type: TEXT/PLAIN; charset=US-ASCII
  17. Sender: owner-ade-gcc@ninemoons.com
  18. Precedence: bulk
  19.  
  20. On Fri, 16 Feb 1996, Matthias Fleischer wrote:
  21.  
  22. > > I think the big problem is that this small functions like __link_a5_d0,
  23. > > __sub_a7_d0 or __stkchk_d0 (or whatever they're called) expect argument in
  24. > > d0. However, d0 is used to pass argument to user's function, so it can't
  25. > > be used as argument for stack checking/extension functions.
  26. > That's true. But if you use stack based arguments for the stackextend
  27. > functions to get registerized parameters you don't win anything. You only
  28. > move the overhead of pushing/popping registers out of the normal function
  29. > call into the stackextend call. I guess any solution that is really fast
  30. > will need to be very complicated, too :-(.
  31.  
  32. You are right. Actually, I'm not aware of any other solution of passing
  33. arguments than on stack or registers (or in static storage - but this is
  34. complete braindamage) - since none of these seems reasonable, I guess we
  35. will have to drop support for register parameters used together with stack
  36. checking/extension... 
  37.  
  38. Or we can use worse stack checking code in such case - ie. pretend that
  39. stack frame will only have 0 bytes - call "__link_a5_0" etc. This wouldn't
  40. be as safe as with stackarg calls, but at least it would be possible...
  41. The problem would exist during function prologue only - later alloca()
  42. calls would be completely safe... 
  43.  
  44. > > I think this would have to be made quite
  45. > > quickly - before IXEmul 43.0 with stack checking/extension support is out.
  46. > No, please. It seems to be stable as it is *now* and I don't think that
  47. > some quick and dirty changes will do any good. A new interface should be well
  48. > thought out ;-).
  49.  
  50. You are right. I suggested to make it quickly just to protect us against
  51. possible future incompatibilities - but indeed it seems that support for
  52. stack checking/extension with register parameters can be made in
  53. compatible way... 
  54.  
  55. / Kamil Iskra - AMIGA 1200, 68030 50MHz, HDD 850 MB, 10 MB RAM \
  56. | iskra@student.uci.agh.edu.pl  kiskra@ernie.icslab.agh.edu.pl |
  57. | http://student.uci.agh.edu.pl/~iskra                         |
  58. \ PGP public key available via Finger or WWW                   /